/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Calculos;

import java.util.ArrayList;

/**
 *
 * @author Isabela
 */
public class EngastadaInvertidaCentrada extends CalculaConcentrada{

     private ArrayList<double []> cargaCentrada=new ArrayList<double[]>();
     double incremento=0.005;

    public EngastadaInvertidaCentrada(double ininicViga) {
        super(ininicViga);
    }

    @Override
    public void CalculaCargaCentrada(double forca, double tamanhoViga, double posicao) {
        CalculaFuncaoFletor(forca, tamanhoViga, posicao);
        CalculaFuncaoEsforcoCortante(forca, tamanhoViga, posicao);
        

    }

private void CalculaFuncaoFletor(double forca,double comprimento,double posicao){

    int tamanhoVetor = (int) (comprimento / incremento);
        double x[] = new double[tamanhoVetor];
        double y[] = new double[tamanhoVetor];
        for (int i = 1; i < tamanhoVetor; i++) {
            x[i] = x[i - 1] + incremento;
        }

        for(int i=0;i<tamanhoVetor;i++){
            if(x[i]<=(posicao)){
                y[i]=0;
            }
            else{
                y[i]=-1*((forca)*(x[i]-posicao));
            }
        }
       // new Graficos("Gráfico Momento Fletor Força Centrada", x, y);
        cargaCentrada.add(x);
        cargaCentrada.add(y);
}

private void CalculaFuncaoEsforcoCortante(double forca,double comprimento,double posicao){
     int tamanhoVetor = (int) (comprimento / incremento);
        double x[] = new double[tamanhoVetor];
        double y[] = new double[tamanhoVetor];
        for (int i = 1; i < tamanhoVetor; i++) {
            x[i] = x[i - 1] + incremento;
        }
        for(int i=0;i< tamanhoVetor;i++){
            if(x[i]<=posicao){
                y[i]=0;
            }
          else{
                y[i]=-1*forca;
          }
        }


       // new Graficos("Gráfico Esforço Cortante Força Centrada", x, y);
        cargaCentrada.add(x);
        cargaCentrada.add(y);
}


public double CalculaFuncaoFletorNoPonto(double x,double forca,double comprimento,double posicao){


    double resultado=0.0;
      if(x<=(posicao)){
                resultado=0;
            }
            else{
                resultado=-1*((forca)*(x-posicao));
            }
    return resultado;
}

    @Override
    public ArrayList<double[]> getCargaCentrada() {
        return cargaCentrada;
    }


}
